// pinia 的基础写法

import {defineStore} from "pinia";
import {computed, ref} from "vue";

// 1.定义 store
// defineStore(仓库唯一标识,()=>{}) ： 返回的是一个函数
export const useCounterStore = defineStore('counter', () => {
    // 2.定义声明（pinia 把 mutations 删除了，只有一个 actions 负责修改数据【同步/异步】）
    // 声明数据 state
    // 声明操作数据的方法 actions - 使用普通函数修改数据
    // 声明数据派生的计算属性 getters - 使用 computed 计算属性计算

    const count = ref(100);
    const addCount = () => {
        count.value++
    }
    const subCount = () => {
        count.value--
    }
    const double = computed(() => {
        return count.value * 2
    });

    const msg = ref('hello pinia')

    // 只有 return 出去之后页面之中才能使用
    return {
        count,
        addCount,
        subCount,
        double,
        msg
    }
});